RK3568

您所在的位置:网站首页 播放BT v21 RK3568

RK3568

#RK3568| 来源: 网络整理| 查看: 265

1. 简介

本文是基于RK3568平台,HDMI-IN调试总结。

视频桥接芯片:RK628D

驱动代码:“kernel\drivers\media\i2c\rk628”(驱动用的是rk628-for-all-v21版本)

本次调试的方案功能:HDMI-IN信号通过RK628D转换成MIPI-CSI传到主控SOC

参考文档:“RKDocs\common\RK628\Rockchip_RK628D_For_All_Porting_Guide_CN_V21.pdf”

场景描述: ① RK3568 不直接支持HDMI-IN接口,SOC有MIPI-CSI功能。需将HDMI-IN转换成MIPI-CSI才能获取视频信息。

②此文章使用场景是一个HDMI-IN信号输入到RK628D芯片,RK628D再将HDMI-IN信号转换成MIPI-CSI信号输出到RK3588 SOC。通过软件抓取输入进SOC的视频信息。

在这里插入图片描述

2. 视频桥接芯片RK628D调试 2.1 RK628驱动介绍

RK628驱动有两个版本,一个是SDK系统自带的版本,一个是RK628-for-all版本。

RK628 分为 Display 通路和 HDMI IN 通路,SDK 版本 Display 通路基于DRM框架,HDMI IN 通路基于V4L2框架。

RK628-For-All 版本驱动一样也分为Display 通路和 HDMI IN 通路,Display 通路的驱动于drivers/misc/rk628/ 下,HDMI IN 通路的驱动于drivers/media/i2c/rk628/下。本文采用RK628-For-All 版本HDMI IN 通路:media

Media 为 RK628 HDMI IN 通路的驱动代码,将RK628D作为类camera设备使用,实现如下功能。

在这里插入图片描述

2.2 调试总览,调试步骤分析

调试思路:先把四个HDMI-IN对应一个龙讯LT8641UXE芯片,对应一个RK628D芯片调好。再调另一组。

步骤 ① 移植驱动步骤 ② dts编写步骤 ③ 编译烧录,调试 2.3 移植驱动:

移植,向RK业务拿到移植的驱动文件:RK628-for-all-v21版本(和泰旨项目三是一样) ① config配置:Rockchip_defconfig: 关闭原SDK的628配置(不关闭的话会导致for_all驱动和sdk自带驱动冲突导致报错!!!),开启for-all版本的628配置。

# CONFIG_VIDEO_RK628_CSI is not set (不关闭的话会和media驱动有冲突,重复定义) CONFIG_VIDEO_RK628=y (这是RK628-for-all media驱动开关配置) CONFIG_DRM=y

2.4 dts编写 &i2c2 { clock-frequency = ; status = "okay"; pinctrl-names = "default"; pinctrl-0 = ; rk628_csi_v4l2: rk628_csi_v4l2@50 { status = "okay"; reg = ; compatible = "rockchip,rk628-csi-v4l2"; interrupt-parent = ; interrupts = ; enable-gpios = ; reset-gpios = ; //hdcp-enable = ; scaler-en = ; pinctrl-names = "default"; pinctrl-0 = ; assigned-clocks = ; //assigned-clocks = ; assigned-clock-rates = ; clocks = ; clock-names = "soc_24M"; // pinctrl-names = "default"; // pinctrl-0 = ; plugin-det-gpios = ; rockchip,camera-module-index = ; rockchip,camera-module-facing = "back"; rockchip,camera-module-name = "RK628-CSI"; rockchip,camera-module-lens-name = "NC"; port { hdmiin_out0: endpoint { remote-endpoint = ; data-lanes = ; }; }; }; }; &csi2_dphy_hw { status = "okay"; }; &csi2_dphy0 { status = "okay"; ports { #address-cells = ; #size-cells = ; port@0 { reg = ; #address-cells = ; #size-cells = ; mipi_in_ucam0: endpoint@0 { reg = ; remote-endpoint = ; data-lanes = ; }; }; port@1 { reg = ; #address-cells = ; #size-cells = ; csidphy_out: endpoint@0 { reg = ; remote-endpoint = ; }; }; }; }; &rkisp { status = "okay"; }; &rkisp_mmu { status = "okay"; }; &rkisp_vir0 { status = "okay"; port { #address-cells = ; #size-cells = ; isp0_in: endpoint@0 { reg = ; remote-endpoint = ; }; }; }; 3. 调试命令:

1. 查看media设备:

ls /dev/media* /dev/media0 /dev/media1

2. i2c设备的通用调试命令:查看设备是否挂载到i2c总线下:

i2cdetect -y 2

3. 查看media节点的拓扑结构命令:

media-ctl -d /dev/media0 -p media-ctl -p

4. 抓图命令:

v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=NV12 --stream-mmap=3 --stream-skip=100 --stream-to=/oem/NV12.yuv --stream-count=1 --stream-poll


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3